Part Number Hot Search : 
1N5383 GXB2000 28F32 MC68185 1N6009 CXA1527Q STK0160I BPC5010
Product Description
Full Text Search
 

To Download GL640USB Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  GL640USB GL640USB - a ieee - 1284 to usb bridge specification 1.1 june 7 , 199 9 your imagination, our creation genesys logic, inc. 10f, no.11, ln.3, tsao ti wei, shenkeng, taipei, taiwan tel: +886 - 2 - 2664 - 6655 fax : +886 - 2 - 2664 - 5757 http://www.genesyslogic.com
revision 1. 1 jun. 7, 1999 - 1 - GL640USB, gl 64 0usb - a index 1. features ................................ ................................ ................................ .................. 2 2. description ................................ ................................ ................................ .............. 3 3. i eee 1284 interface ................................ ................................ ................................ 3 4. pin configuration ................................ ................................ ................................ .... 4 5. pin descriptions ................................ ................................ ................................ ...... 5 6. block diagram ................................ ................................ ................................ ......... 7 7. 8 - bit risc mcu instruction ................................ ................................ ........... 9 7.1 memory organization ................................ ................................ .............. 9 7.2 mcu f unction registers ................................ ................................ ....... 11 7.3 i/o register summary ................................ ................................ ..................... 15 7.4 usb register summary ................................ ................................ ................... 22 8. instruction set summary ................................ ................................ .......... 27 9. advantages of GL640USB ................................ ................................ .................... 30 10. epp timing ................................ ................................ ................................ ........... 31 10.1 epp burst data write ................................ ................................ .................... 31 10.2 epp burst data read ................................ ................................ .................... 32 11. electrical characteristics ................................ ................................ ....................... 33 11.1 absolute maximum ratings (voltages referenced to gnd) ........................... 33 11.2 dc c haracteristics (digital pin s) ................................ ................................ .... 33 11.3 dc characteristics (vcp/d+/d - ) ................................ ................................ .... 34 11.4 switching characteristics ................................ ................................ ............... 35 12. package ................................ ................................ ................................ ............... 36
revision 1. 1 jun. 7, 1999 - 2 - GL640USB, gl 64 0usb - a 1. features ? low - cost solution for full - speed usb device ? applications ? printer, scanner, pc camera , external storage device, cd - rom ? ieee 1284 interface supports bi - directional communication ? on - chip epp engine ? on - chip 8 - bit micro - controller ? usb specification compliance - conforms to usb 12mbps specification, version 1.0 - supports 1 device address and 4 end points ? 2 sets of 64 - byte fifo with dynamic allocation - a. 64 - in/64 - out - b. 64 - in0/64 - in1 ping pong buffer - c. 64 - out0/64 - out1 ping pong buffer ? integrated usb transceiver ? on - chip 3.3v regulator ? improved output drivers with slew - rate control to reduce emi ? 12m hz external clock ? on - chip pll to support 48mhz internal clock ? internal power - on reset(por) ? supports suspend/normal mode power management ? customized firmware/driver for scanner application ? the driver allows current win98/win95 osr - 2 printer drivers to print seamlessly to usb ? fully plug & play compatible ? single - chip solution in cost saving 40 - pin soj (GL640USB) / 48 - pin lqfp(GL640USB - a) ? special pad - design to support epp/usb dual - interface application
revision 1. 1 jun. 7, 1999 - 3 - GL640USB, gl 64 0usb - a 2. description the GL640USB is a low - cost, single - chip embedd ed controller designed for connecting an ieee 1284 parallel port peripheral to usb. it is suitable for applications where the ic is mounted on a pcb inside a product or stand - alone applications where the chip resides in a cable connecting a standard parall el port device to an usb - capable computer. the GL640USB firmware/driver will allow peripheral vendors to easily migrate parallel port device to usb. 3 3 . . i eee 1284 interface clk12/48 3.3v output epp device asic GL640USB gpio1-7 init# wr# wait# astrb# dstrb# ad[7:0] int# clkout hrst usb port d+ d- vcp oscsel gpi1-4
revision 1. 1 jun. 7, 1999 - 4 - GL640USB, gl 64 0usb - a 4 4 . . pin configuration 40 - soj 48 - lqfp avcc 14 d- 13 d+ 12 vcp 11 d7 10 d6 9 d5 8 d4 7 dgnd 6 dvcc 5 d3 4 d2 3 d1 2 d0 1 nc 15 agnd 16 gpi1 17 nc 18 nc 19 gpi2 20 gpi3 21 x2 22 nc 23 x1 24 oscsel 25 gpi4 26 test# 27 int# 28 gpio1 29 gpio2 30 dvcc 31 dgnd 32 gpio3 33 gpio4 34 gpio5 35 gpio6 36 gpio7 37 init# 38 nc 39 dstrb# 40 astrb# 41 nc 42 clkout 43 nc 44 hrst 45 nc 46 wr# 47 wait# 48 astrb# 40 dstrb# 39 init# 38 gpio7 37 gpio6 36 gpio5 35 gpio4 34 gpio3 33 dgnd 32 dvcc 31 gpio2 30 gpio1 29 int# 28 test# 27 gpi4 26 oscsel 25 x1 24 x2 23 gpi3 22 gpi2 21 gpi1 20 agnd 19 avcc 18 d- 17 d+ 16 vcp 15 d7 14 d6 13 d5 12 d4 11 dgnd 10 dvcc 9 d3 8 d2 7 d1 6 d0 5 wait# 4 wr# 3 hrst 2 clkout 1
revision 1. 1 jun. 7, 1999 - 5 - GL640USB, gl 64 0usb - a 5 5 . . pin descriptions gl 640usb pin no. GL640USB - a pin no. symbol i/o description 1 43 clkout o clock output to external device the clock frequency is selected by setting devctl register. 2 45 hrst i high active hardware reset, internal pull low with internal power - on reset circ uit, this pin can be left unconnected or pulled low. 3 47 wr# o this active low signal indicates the epp write operation. 4 48 wait# i this signal acts as the acknowledge from external epp device, internal pull up 5 - 8 1 - 4 d0 - d3 i/o address/data bus bit 0 to bit 3 9 5 dvcc - digital 5v input 10 6 dgnd - digital ground 11 - 14 7 - 10 d4 - d7 i/o address/data bus bit 4 to bit 7 15 11 vcp - 3.3 v output. this output voltage is used to pull up d+ line to indicate the full - speed device. 16 12 d+ i/o usb differ ential data 17 13 d - i/o usb differential data 18 14 avcc - analog 5v input 19 16 agnd - analog ground 20 17 gpi1 i general purpose input 1 21 20 gpi2 i general purpose input 2 22 21 gpi3 i general purpose input 3 23 22 x2 i/o crystal output 24 24 x1 i 12/48 mhz crystal or external clock input 25 25 oscsel i oscillator select, internal pull down 0=12mhz 1=48mhz 26 26 gpi4 i general purpose input 4, internal pull up
revision 1. 1 jun. 7, 1999 - 6 - GL640USB, gl 64 0usb - a 27 27 test# i mode select, internal pull up 1=normal mode 0=chip test mod e 28 28 int# i this is an input pin to accept the interrupt signal from external epp controller, internal pull up 29 29 gpio1 i/o this signal is served as an general purpose i/o pin, internal pull up 30 30 gpio2 i/o this signal is served as an general purpose i/o pin, internal pull up 31 31 dvcc - digital 5v input 32 32 dgnd - digital ground 33 33 gpio3 i/o this signal is served as an general purpose i/o pin, internal pull up 34 34 gpio4 i/o this signal is served as an general purpose i/o pin, inter nal pull down 35 35 gpio5 i/o this signal is served as an general purpose i/o pin 36 36 gpio6 i/o this signal is served as an general purpose i/o pin 37 37 gpio7 i/o this signal is served as an general purpose i/o pin 38 38 init# o output signal to ini tialize the epp device. 39 40 dstrb# o epp data strobe 40 41 astrb# o epp address strobe
revision 1. 1 jun. 7, 1999 - 7 - GL640USB, gl 64 0usb - a 6 6 . . block diagram this usb controller contains 3 sets of fifo. the endp0 fifo is an 8 - byte fifo to store/transmit the endp0 control packet. the fifo0 and fifo1 are a set of 64 - byte ping - pong fifo for endp1 and endp2. fifo0 is used for data0 packet and fifo1 is for data1 packet. when they are served as the endp1 fifo, the linkff bit of ffcfg should be set and linkdir bit of ffcfg should be cleared. it they are alloca ted as the endp1 fifo, then linkdir should be set. an epp engine is included to automatically accessing data to/from external device asic. firmware can set the data length and hardware will count down to decide the last byte. there are two sets of regis ters : i/o register and usb register . the usb register is controlled by micro - controller to implement the usb endpoint 0 functions. the i/o register is the main register to interface the data accessing between this controller and external device. micro controller i/o register usb control usb sie endp0 fifo fifo0 fifo1 (64 bytes) (64 bytes) register epp engine GL640USB
revision 1. 1 jun. 7, 1999 - 8 - GL640USB, gl 64 0usb - a the int ernal micro - controller is a proprietary risc - like, harvard - architecture 8 - bit micro - controller.
revision 1. 1 jun. 7, 1999 - 9 - GL640USB, gl 64 0usb - a 7 7 . . 8 - bit risc mcu instruction 7.1 memory organization the memory in the microcontroller is organized into user program memory in program rom and data memory in sram space. program memory organization the 11 - bit program counter (pc) is capable of addressing 2.25k x 14 of program space. however, the program space of the GL640USB is 2k x 14. the program memory space is divided into two functional groups: interrupt vectors and program code. after a reset, the program counter points to location zero of the program space. after a timer interrupt, the program counter points the location 0x0004 of the program space. after reset ? addres s 0x0000 reset vector after timer interrupt ? 0x0004 timer interrupt vector 0x0005 0x07ff 2k x 14 rom figure 7 - 1 program memory space
revision 1. 1 jun. 7, 1999 - 10 - GL640USB, gl 64 0usb - a data memory organization the data memory is partitioned into two banks which contain the general purpose r egisters, mcu function registers and usb function registers. bit rp0 is the bank select bit. rp0 (status<5>) = 1 ? bank 1 rp0 (status<5>) = 0 ? bank 0 the lower locations of each bank are reserved for mcu function registers. above the mcu function register s are the usb registers, i/o registers and general purpose registers implemented as sram. both bank 0 and bank 1 contain mcu function registers. usb registers are located in bank 0, and i/o resgiters are located in bank 1. some ?high use? mcu function reg isters from bank 0 are mirrored in bank 1 for code reduction and quicker access. data memory address data memory address 00h indr 80h indr 01h timer 81h pscon 02h pcl 82h pcl 03h status 83h status 04h indar 84h indar 05h 85h 06h port1 86h port1c o n 07h port2 87h port2co n 08h 88h 09h 89h 0ah pchbuf 8ah pchbuf 0bh inten 8bh inten 10~1fh usb registers 90h~9fh i/o registers 20h general
revision 1. 1 jun. 7, 1999 - 11 - GL640USB, gl 64 0usb - a 5fh purpose registers (64 bytes) figure 7 - 2 data memory space 7.2 mcu f unction registers address name function 00h indr addressing this location will use the content of indar to address data memory (not a physical address) 01h timer timer register 02h pcl program counter?s low byte 03h status status register 04h in dar indirect address register 06h port1 port 1 data register 07h port2 port 2 data register 0ah pchbuf write buffer of program counter?s bit 10 - 8 80h indr addressing this location will use the content of indar to address data memory (not a physical add ress) 81h pscon prescaler control register 82h pcl program counter?s low byte 83h status status register 84h indar indirect address register 86h port1con port 1 direction control register 87h port2con port 2 direction control register 8ah pchbuf wri te buffer of program counter?s bit 10 - 8 table 7 - 1 mcu function register summary indr (address 00h/80h) indr is not a physical register. addressing indr register will cause indirect addressing. any
revision 1. 1 jun. 7, 1999 - 12 - GL640USB, gl 64 0usb - a instruction using the indf register actually accesses the register pointed by the indar register. timer (address 01h, timer register) r/w r/w r/w r/w r/w r/w r/w r/w timer7 timer6 timer5 timer4 timer3 timer2 timer1 timer0 after timer is enable, the timer will start to count up. the timer interrupt is generate d when the timer register overflows from ffh to 00h. value on por: ?0 0 0 0 0 0 0 0? pcl (address 02h/82h, program counter?s low byte) r/w r/w r/w r/w r/w r/w r/w r/w pcl7 pcl6 pcl5 pcl4 pcl3 pcl2 pcl1 pcl0 the program counter (pc) is 11 - bit wide. the low byte comes from the pcl register, which is a readable and writable register. the high byte is not directly readable or writable and comes from pchbuf. the gl600usb has a 4 level deep x 11 - bit wide hardware stake. the stake space is not part of either p rogram or data space and the stack pointer is not readable or writable. the pc is pushed onto the stack when a call instruction is executed or an interrupt causes a branch. the stack is poped in the event of a retia, reti or a ret instruction execution. pc hbuf is not affected by a push or pop operation. value on por: ?0 0 0 0 0 0 0 0? status (address 03h, status register) r/w r/w r/w r/w bs zo hc ca bs: bank select 1: bank 1 (80h - ffh) 0: bank 0 (00h - 7fh) zo: zero bit 1: the result of an arithm etic or logic operation is zero 0: the result of an arithmetic or logic operation is not zero hc: half carry/borrow bit 1: a carry - out from the 4 th low order bit
revision 1. 1 jun. 7, 1999 - 13 - GL640USB, gl 64 0usb - a 0: no carry - out from the 4 th low order bit ca: carry/borrow bit 1: a carry - out from the mo st significant bit 0: no carry - out from the most significant bit value on por: ? - - 0 - - 0 0 0? indar: (address 04h/84h, indirect address register) r/w r/w r/w r/w r/w r/w r/w r/w indar7 indar6 indar5 indar4 indar3 indar2 indar1 indar0 any instruction using the indf register actually accesses the register pointed by the indar register. value on por: ?x x x x x x x x? [1] note 1: ?x? means unknown port1 (address 06h, port 1 data register) r/w r/w r/w r/w r/w port1. 4 port1. 3 port1. 2 port1. 1 port1 . 0 port1 is a 5 - bit latch for port 1. reading the port1 register reads the status of the pins whereas writing to it will write to the port latch. all write operations are read - modify - write operations. value on por: ? - - - x x x x x? port2 (address 07h, p ort 2 data register) r/w r/w r/w r/w r/w r/w r/w r/w port2. 7 port2. 6 port2. 5 port2. 4 port2. 3 port2. 2 port2. 1 port2. 0 port2 is an 8 - bit latch for port 2. reading the port2 register reads the status of the pins whereas writing to it will write to the port latch. all write operations are read - modify - write operations. value on por: ?x x x x x x x x? pchbuf (address 0ah/8ah, write buffer of program counter?s bit 10 - 8) r/w r/w r/w
revision 1. 1 jun. 7, 1999 - 14 - GL640USB, gl 64 0usb - a pchbu f2 pchbu f1 pchbu f0 write buffer for upper 3 - bit of program coun ter. the upper byte of program counter is not directly accessible. pchbuf is a holding register for the pc[10:8] whose contents are transferred to the upper byte of the program counter. value on por: ? - - - - - 0 0 0? inten (address 0bh/8bh, interrupt ena ble register) r/w r/w r/w gie tmroe n tmrof gie: global interrupt enable bit 1: enable all interrupts 0: disable all interrupts tmroen: timer overflow interrupt enable bit 1: enable timer interrupt 0: disable timer interrupt tmrof: timer ove rflow interrupt flag bit 1: timer register has overflowed 0: timer register did not overflow value on por: ?0 - 0 - - 0 - - ? pscon (address 81h, prescaler control register) r/w r/w r/w r/w psdis ps2 ps1 ps0 psen: prescaler disable bit 1: disa ble prescaler for timer 0: enable prescaler for timer ps[2:0]: prescaler rate select bits bit value timer rate 000 1:2 001 1:4
revision 1. 1 jun. 7, 1999 - 15 - GL640USB, gl 64 0usb - a 010 1:8 011 1:16 100 1:32 101 1:64 110 1:128 111 1:256 value on por: ? - - - - 1 1 1 1? port2con (address 86h, port 1 direction control register) r/w r/w r/w r/w p1con3 p1con2 p1con1 p1con0 all port 1 pins have data direction control bits which can configure these pins as output or input. setting a port1con register bit put the corresponding output driver in a hi - impedance mode. clearing a bit in the port1con register puts the contents of the output latch on the selected pin. value on por: ? - - - - 1 1 1 1? port2con (address 87h, port 2 direction control register) r/w r/w r/w r/w r/w r/w r/w r/w p2con7 p2con6 p2con5 p2con4 p2con3 p2con2 p2con1 p2con0 all port 2 pins have data direction control bits which can configure these pins as output or input. setting a port2con register bit put the corresponding output driver in a hi - impedance mode. clearing a bit in th e port2con register puts the contents of the output latch on the selected pin. value on por: ?1 1 1 1 1 1 1 1? 7.3 i/o register summary mnemonic address (hex) description iodevctl 90 device control for i/o endpctl 91 endpoint control gpi 92 gpi3 - 1 r egister
revision 1. 1 jun. 7, 1999 - 16 - GL640USB, gl 64 0usb - a intflg 93 interrupt flag uinten 94 usb interrupt enable usbflg 95 usb interrupt flag ctldat/ stsdat 96 control/status data buffer ctllen/ stslen 97 control/status data length ffcfg 98 fifo configuration register ffctl 99 fifo control ff0dat 9a data port for fifo0 ff1dat 9b data port for fifo1 line_l 9c read : max. length of tx data packet write : line size (low byte) line_h 9d read : received data length / write : line size (high byte) eppctl 9e epp control / status eppad 9f epp interf ace ad0 - 7 iodevctl (offset 90h) r/w r/o r/o r/o r/w r/w r/w r/o extclk en nc nc gpi4 cksel2 cksel1 cksel0 clktyp clktyp - select crystal frequency, this bit reflects the oscsel pin 0 - 12mhz, 1 - 48mhz cksel[2:0] - select clkout frequency, default=8 mhz 000 - stop clkout 100 - 8mhz 001 - 24mhz 101 - 6mhz 010 - 16mhz 110 - 12khz 011 - 12mhz gpi4 - this bit reflects the status of gpi4 input pad extclken - enable extclk output 0 ? set extclk to tri - state 1 - enable extclk endpct l (offset 91h)
revision 1. 1 jun. 7, 1999 - 17 - GL640USB, gl 64 0usb - a r/w r/w r/w r/w ep3stl ep2stl ep1stl ep0stl default=8?h00 epnstl - endpoint n is stalled by setting ep n stl to ?1?, endpoint n will respond with a stall to incoming usb packet. gpi (offset 92h) r/o r/o r/o gpi3 gpi2 gpi 1 intflg ( offset 93h ) r/o r/w1c r/w1c r/w1c r/o r/o r/w1c r/w1c reserved resume suspnd eppint reserved ep3tx datarx datatx default=8?h00 this register is used to identify the exact interrupt event. when the external controller receives an interrup t, it should first read this register to check the interrupt event. writing ?1? to clear the individual interrupt bit. datatx - the endp1 transmits a data packet completely datarx - the endp2 receives a data packet ep3tx - endp3 transaction is detecte d eppint - this bit means external epp interrupt is detected. the epptxen/epprxen is cleared by hardware when this bit is set. suspnd - usb suspend request is detected. resume - usb resume request is detected. uinten ( offset 94h ) r/w r/w r/w r/w r/o r/w r/w r/w ffint remint susint dmaint reserved uinten drxint dtxint these are the interrupt enable bits of intflg register. default = 8?h00 usbflg ( offset 95h ) r/w1c r/o r/o
revision 1. 1 jun. 7, 1999 - 18 - GL640USB, gl 64 0usb - a ststx reserved reserved default=8?h00 ststx - the interrup t endpoint 3 transmits a status packet completely ctldat/stsdat ( offset 96h ) r/w r/w r/w r/w r/w r/w r/w r/w ctldat7 ctldat6 ctldat5 ctldat4 ctldat3 ctldat2 ctldat1 ctldat0 read: pop data from endp0/endp3 fifo. write: push data into endp0/endp3 fifo. ctllen/stslen ( offset 97h ) r/o r/o r/w r/w r/w r/w r/w rxsetup rxout datog ctllen3 ctllen2 ctllen1 ctllen0 for the received out/setup transaction on endp0/endp3, read this register to check the data size and data toggle, and then read the received data from ctldat/stsdat register. to transmit data on endp0/endp3, first push data into endp0/endp3 fifo, and then write this register to set data size and data toggle. finally, turn on ctltxen or ststxen bit to enable the data transmission. ctllen3 - 0 - l ength of the received/transmitted endp0/endp3 data datog - data toggle of the received/transmitted endp0/endp3 data rxout - the received transaction is an out transaction rxsetup - the received transaction is a setup transaction ffcfg ( offset 98h ) r /w r/w r/w r/w r/w r/w tx64only txnull dmarxen/ epprxen dmatxen/e pptxen linkdir linkff default=8?h00 this register is used to control tx/rx fifo and dma/epp engine operation. linkff - link rxfifo to txfifo together to form ping - pong fifo linkdir - this bit is valid only when linkff is set to 1. 1: the ping - pong fifo is used for end2
revision 1. 1 jun. 7, 1999 - 19 - GL640USB, gl 64 0usb - a 0: the ping - pong fifo is used for end1 dmatxen - enable dma/epp engine to access data into txfifo dmarxen - enable dma/epp engine to move data from rxfifo into e xternal device txnull - set this bit to transmit a zero - byte data on endp1 this bit will be cleared by hardware automatically. tx64only - transmit 64 - byte packet only when this bit is set, data left in fifo will not be sent if it is not 64 by tes. note: when linkff is set and linkdir is gonna to change, linkff should be cleared to ?0? first and then change linkdir and set linkff again. ffctl ( offset 99h ) w/o w/o w/o r/w r/w r/w r/w r/w ff0rst rxffrst txffrst ststxen drxdis/ dtx1en dtx0en ct lrxdis ctltxen ctltxen - enable endpoint 0 transmitting this bit is cleared by hardware when ctltx interrupt is set. ctlrxdis - disable endpoint 0 receiving dtxen - turn on this bit to enable endpoint 1 data packet transmission. if linkff=1, it indicates the txfifo0 is ready. this bit is cleared by hardware when datatx interrupt is set. drxdis - disable rxfifo receiving if this bit is set, nak will be responded to the out token. data in rxfifo is kept unchanged. if linkff=1, t his bit means the txfifo1 is ready. ststxen - enable endpoint 3 transmitting this bit is cleared by hardware when ststx interrupt is set. txffrst - reset txfifo, cleared by hardware itself. rxffrst - reset rxfifo, cleared by hardware itself ff0rst - reset ctl/sts fifo, cleared by hardware itself ff0dat ( offset 9ah )
revision 1. 1 jun. 7, 1999 - 20 - GL640USB, gl 64 0usb - a r/w r/w r/w r/w r/w r/w r/w r/w ffdat7 ffdat6 ffdat5 ffdat4 ffdat3 ffdat2 ffdat1 ffdat0 read this register will pop data from fifo0. write this register will push data into fifo0. ff 1dat ( offset 9bh ) r/w r/w r/w r/w r/w r/w r/w r/w ffdat7 ffdat6 ffdat5 ffdat4 ffdat3 ffdat2 ffdat1 ffdat0 read this register will pop data from fifo1. write this register will push data into fifo1. maxlen/line_l ( offset 9ch ) r/w r/w r/w r/w r/w r/w r/w r/w line7 line6 line5 line4 line3 line2 line1 line0 read: maxlen - equal to 64 write: line_l - the low byte of epp accessing length datlen / line_h ( offset 9dh ) r/w r/w r/w r/w r/w r/w r/w r/w line15 line14 line13 line12 line11 line10 line9 line8 read: datlen - the length of data received by the rx endpoint write: line_h - the high byte of epp accessing length eppctl ( offset 9eh ) r/w r/w r/w r/w r/w r/w r/o r/w glthflt wrchk active a2chk a1chk a0chk int_ adoe this register is ava ilable only in epp mode. adoe - set this bit to ?1? can drive data in eppad register to pins d7 - 0 int_ - this bit reflects the status of int_ pin.
revision 1. 1 jun. 7, 1999 - 21 - GL640USB, gl 64 0usb - a an chk - this bit is used to select the type of epp read engine 1 ? epp engine will check an pin before starting an epp cycle. 0 ? epp engine doesn?t check an pin , n =0~2 active - select the an pin polarity 1 ? active high for data ready 0 ? active low for data ready wrchk - select epp check status during write or read 1 - check during epp write cy cle 0 ? check during epp read cycle glthflt - filter glitches on wait_ 1 - enable filter, performance maybe slow down 0 ? disable filter eppad ( offset 9fh ) r/w r/w r/w r/w r/w r/w r/w r/w eppad7 eppad6 eppad5 eppad4 eppad3 eppad2 eppad1 eppad0 this re gister is used to set/read pins d7 - 0. to set d7 - 0, except writing eppad, the adoe bit of eppctl register is set to 1 read this register can get the status of pins d7 - 0.
revision 1. 1 jun. 7, 1999 - 22 - GL640USB, gl 64 0usb - a 7.4 usb register summary mnemonic offset description remarks devctl 10h device cont rol register evtflg 11h usb function interrupt flag devadr 12h usb device address rxctl0 13h endpoint 0 rx control txctl0 14h endpoint 0 tx control ctldat 15h endpoint 0/3 fifo data port misc 16h miscellaneous register gpio 17h gpio value gpioctl 18h gpio direction control devctl ( offset 10h ) r/w r/w r/w r/w r/w disglusb ep0stl wake wakedis pwrdn default=8?h10 pwrdn - power down mode if usb suspend is detected, firmware can set pwrdn to put the controller into power down mode . power down mode stops oscillator and freezes all clocks at known states, and no more command can be executed. hardware will automatically clear pwrdn upon hardware reset or interrupt event. wakedis - disable remote wakeup capability wake - wake up host write ?1? to this bit will place usb bus to k state. ep0stl - endpoint 0 stall endpoint 0 will respond with a stall to a valid transaction. disglusb - disable GL640USB, and bypass all epp signals
revision 1. 1 jun. 7, 1999 - 23 - GL640USB, gl 64 0usb - a when this bit is set to ?1?, d+ and d - pin will be driven to low so that no connect will be detected on the host side. evtflg ( offset 11h ) w/o r/w1c r/w1c r/w1c r/w1c r/w1c s_ctlrx wakeup resume suspd ep0tx ep0rx this register is the main usb interrupt flag for endpoint 0 and power management. the firmw are detects endpoint 0 transaction via ep0rx and ep0tx. if firmware can?t handle the received endpoint 0 control data, then firmware should write ?1? to s_ctlrx and ep0rx. by this, the interrupt will redirect to the external dma interrupt and the ctlrx bit of usbflg register will be set. for power management, when a usb suspend is detected, the suspd bit will be set to ?1?. if the usb host put the bus to ?k? state during suspend, then the resume bit will be set to ?1?. if a remote - wake - up event is detected, then the wakeup bit will be set to ?1?. all those interrupt status bits can be written ?1? to clear. ep0rx - endpoint 0 receives a data packet. ep0tx - endpoint 0 transmits a data packet completely. suspd - usb suspend detected resume - usb resume detec ted wakeup - remote - wake - up event is detected during suspend state the event is dma mode: wakevt bit is set epp mode: int_ pin is asserted low s_ctlrx - write 1 to set ctlrx bit of usbflg all the data in endp0/endp3 fifo are left unchanged. devad r ( offset 12h ) r/w r/w r/w r/w r/w r/w r/w devadr6 devadr5 devadr4 devadr3 devadr2 devadr1 devadr0 this register is used to set usb device address. default=8?h00
revision 1. 1 jun. 7, 1999 - 24 - GL640USB, gl 64 0usb - a rxctl0 ( offset 13h ) r/w r/o r/o r/o r/o r/o r/o r/o rxdis rxsetup rxout rxseq rxcnt 3 rxcnt2 rxcnt1 rxcnt0 default=8?h0e this register is used to check the received data byte count, data toggle, and transaction token on endpoint 0. when the ep0rx interrupt is detected, firmware should first check this register to decide the received data is valid or not. at this time, rxdis bit is set by hardware to prevent the current data in endp0 fifo overwritten by next incoming data. after extracting data from endp0 fifo, firmware should clear rxdis to enable receiving capability on endp0. rxcnt[3:0 ] - received data byte count. rxseq - 1 - the received data is data1 0 - the received data is data0 rxout - 1 - the received token is out. rxsetup - 1 - the received token is setup. rxdis - disable receiving capability on endpoint 0 upon successfully receiving a data packet on endpoint 0, hardware will automatically set this bit to ?1?. at this time, no more setup/out data on endpoint 0 can be accepted, hardware will respond with nak. 0 - endp0 fifo is available for data receiving. 1 ? endp0 fifo is not available note: firmware must take care the data toggle check and decide if current rx data is valid. txctl0 ( offset 14h ) r/w r/w r/w r/w r/w r/w txoe txseq txcnt3 txcnt2 txcnt1 txcnt0 default=8?h00 this register is used to control the data by te count, data toggle of the transmitted data on endpoint 0. if there is data to be sent to endpoint 0, firmware should first push data into ffdat0 register, and then set the pushed byte count to txcnt3 - 0, set the data toggle to txseq, and finally turn on txoe to enable the data transmission.
revision 1. 1 jun. 7, 1999 - 25 - GL640USB, gl 64 0usb - a txcnt3 - 0 - number of bytes to send txseq - 0 - tx data0 1 - tx data1 txoe - ready to transmit control data ctldat ( offset 15h ) r/w r/w r/w r/w r/w r/w r/w r/w ffdat7 ffdat6 ffdat5 ffdat4 ffdat3 ffdat2 ffdat1 ff dat0 this register is the window to push/pop data from endp0/3 fifo. write to push fifo, read to pop. misc ( offset 16h ) r/o r/o r/o r/o r/o w/o r/w r/w suspd addr deflt power reserved ffrst0 sf sus_dis default = 8?h10 this register is mainly used in testing purpose. sus_dis - disable suspend detection sf - short frame mode, used in suspend detection 0=normal mode, needs 3ms bus idle to enter suspend mode 1=short frame mode, needs only 200us to enter suspend mode ffrst0 - reset endpoint 0 fi fo read/write pointer. data in fifo remain unchanged. power - device is in the powered state deflt - device is in the default state addr - device is in the address state suspd - device is in the suspend state gpio ( offset 17h ) r/w r/w r/w r/w r/w r/ w r/w gpio7 gpio6 gpio5 gpio4 gpio3 gpio2 gpio1 gpioctl ( offset 18h ) r/w r/w r/w r/w r/w r/w r/w gpio7oe gpio6oe gpio5oe gpio4oe gpio3oe gpio2oe gpio1oe
revision 1. 1 jun. 7, 1999 - 26 - GL640USB, gl 64 0usb - a gpio and gpioctl registers are available only in epp mode. gpioctl register determines pin gpio1 - 7 is input mode or output mode, gpio register is used to set the output data to pin gpio1 - 7 or read data from pin gpio1 - 7 input. gpio n oe - 1= set pin gpio n to output mode 0= set pin gpio n to input mode
revision 1. 1 jun. 7, 1999 - 27 - GL640USB, gl 64 0usb - a 8. instruction set summary operand field des criptions field description r register address a accumulator i immediate data b bit address within a 8 - bit register instruction set mnemonic, operands description cycle s flags affected arithmetic operations addar r, a add r and a, r < - r + a 1 ca, hc, zo addar a, r add a and r, a < - a + r 1 ca, hc, zo addai i add a and i, a < - a + i 1 ca, hc, zo incr r increment r, r < - r +1 1 zo incr a, r increment r, a < - r + 1 1 zo incrsz r increment r, r < - r +1, skip if (r = 0) 1 or 2 incrs z a, r increment r, a < - r +1, skip if (a = 0) 1 or 2 subar r, a subtract a from r, r < - r - a 1 ca, hc, zo subar a, r subtract a from r, a < - r - a 1 ca, hc, zo subia i subtract a from i, a < - i - a 1 ca, hc,
revision 1. 1 jun. 7, 1999 - 28 - GL640USB, gl 64 0usb - a zo decr r decrement r, r < - r - 1 1 zo decr a, r decrement r, a < - r - 1 1 zo decrsz r decrement r, r < - r - 1, skip if (r = 0) 1 or 2 decrsz a, r decrement r, a < - r ? 1, skip if (a = 0) 1 or 2 clrr r clear r, r < - 0 1 zo clra clear a, a < - 0 1 zo nop no operation 1 logi cal operations andar r, a and r and a, r < - r & a 1 zo andar a, r and a and r, a < - a & r 1 zo andai i and a and i, a < - a & i 1 zo cmpr r complement r, r < - r ^ ff 1 zo cmpr a, r complement r, a < - r ^ ff 1 zo orar r, a inclusive or r w ith a, r < - r | a 1 zo orar a, r inclusive or a with r, a < - a | r 1 zo oria i inclusive or i with a, a < - a | i 1 zo xorar r, a exclusive or r with a, r < - r ^ a 1 zo xorar a, r exclusive or a with r, a < - a ^ r 1 zo xoria i exclusive or i with a, a < - a ^ i 1 zo bit - wise operations bcr r, b bit clear r, r.b < - 0 1 bsr r, b bit set r, r.b < - 1 1 btrsc r, b bit test r, skip if (r.b = 0) 1 or 2 btrss r, b bit test r, skip if (r.b =1) 1 or 2 data movement operations mov r, a move a into r, r < - a 1 mov a, r move r into a, a < - r 1 zo movia i move i into a, a < - i 1 shift operations swapr r swap high and low nibbles in r 1
revision 1. 1 jun. 7, 1999 - 29 - GL640USB, gl 64 0usb - a rlr r rotate r left through c 1 ca rrr r rotate r right through c 1 ca control tran sfer operations call i call subroutine 2 jump i jump to address 2 retia return and load i to a 2 reti return from interrupt 2 ret return from subroutine 2
revision 1. 1 jun. 7, 1999 - 30 - GL640USB, gl 64 0usb - a 9 9 . . advantages of GL640USB advantage description emi consideration 1. operates at 12mhz frequency to reduce emi radiation 2. slew rate controlled output pads: all the transition on output pads are well controlled to reduce the emi radiation. cost saving 1. provide clock output, no other crystal required. the clock frequency can be 24, 16, 12, 8, 6 mhz 2. build in power - on reset circuit. no reset circuit required. 3. provide 3.3v output to pull - up usb bus flexibility 1. provide self - isolation capability. with this capability, a device can be designed to support both epp and usb interface. 2. provide addition al 7 gpio pins and 4 gpi pins. these pins can be used as testing purpose, status indication, product selection, ?and so on. 3. customized firmware: contains a risc controller with 2k rom, user can developing its own firmware to achieve best performance and sa tisfy special applications 4. support 93c46 to provide external vid and pid performance 1. build in hardware epp engine and 2 sets of 64 byte ping - pong fifo, the performance for bulk transfer will be up to 1.1 mbytes /sec 2. balanced architecture: both the bulk - i n and bulk - out can achieve 1.1 mbytes/sec transfer rate.
revision 1. 1 jun. 7, 1999 - 31 - GL640USB, gl 64 0usb - a 1 1 0 0 . . epp timing 10.1 epp burst data write name description min max unit ta wait# de - assert to dstrb# de - assert 42 83 ns tb end of epp write cycle to beginning of next epp write cycle 83 83 ns tc wait# assert to wr# de - assert 42 83 ns td wr# assert to data available 0 10 ns te wr# de - assert to data invalid 2 ns wr# wait# pd7-0 dstrb#
revision 1. 1 jun. 7, 1999 - 32 - GL640USB, gl 64 0usb - a 10.2 epp burst data read name description min max unit ta wait# de - assert to dstrb# de - assert 42 83 ns tb wait# assert to next dstrb# assert 83 124 ns tc data available to dstrb# deasserted 5 ns td dstrb# de - assert to data invalid 5 ns wr# wait# pd7-0 dstrb#
revision 1. 1 jun. 7, 1999 - 33 - GL640USB, gl 64 0usb - a 1 1 1 1 . . electrical characteristics 11.1 absolute maximum ratings (voltages referenced to gnd) symbol description min max vcc dc supply voltage - 0.5v +7v v i d c input voltage - 0.5v vcc+0.5v v i/o dc input voltage range for i/o - 0.5v vcc+0.5v v ai/o dc input voltage for usb d+/d - pins - 0.5 vcc+0.5v v i/oz dc voltage applied to outputs in high z state - 0.5v vcc+0.5v v esd static discharge voltage 4000v 11.2 dc c haracteristics (digital pins) symbol description min typ max unit p d power dissipation 9 10 11 ma v dd power supply voltage 4.5 5.0 5.5 v i o dc output sink current excluding d+/d - /vcc/gnd 4 ma v il low level input voltage 0.9 v v ih high level input voltage 2.0 v v tlh low to high threshold voltage 1.7 1.8 2.0 v v thl high to low threshold voltage 0.9 1.1 1.3 v v hys hysteresis voltage 0.6 0.7 0.85 v v ol low level output voltage when i ol =4ma 0.4 v v oh high level output voltage when i oh =4ma 2.4 v i olk leakage current for pads with internal pull up or pull down resistor 38 m a r dn pad internal pulldown resister ( note 1 ) 20k 28k 41k ohms r up pad internal pullup resister ( note 2 ) 24k 33k 48k ohms
revision 1. 1 jun. 7, 1999 - 34 - GL640USB, gl 64 0usb - a note 1 : pins with internal pullup resister : pin3, 4, 26, 27, 28, 29, 30, 33, 38, 39, 40 note 2 : pins with internal pulldown resister: pin25, 34 11.3 dc characteristics (vcp/d+/d - ) symbol description min typ max unit v 3.3 vcp regulator output 3.0 3.3 3.6 v i 3.3 vcp maximum supply current 27 41 5 6 ma v ol d+/d - static output low(r l of 1.5k to 3.6v ) 0.3 v v oh d+/d - static output high (r l of 15k to gnd ) 2.8 3.6 v v di differential input sensitivity 0.2 v v cm differential common mode range 0.8 2.5 v v se single - ended receiver threshold 0.2 v c in transceiver capacitance 20 pf i lo hi - z state data line leakage - 10 +10 m a z drv driver output resistance 28 43 ohms
revision 1. 1 jun. 7, 1999 - 35 - GL640USB, gl 64 0usb - a 11.4 switching characteristics symbol description min typ max unit f x1 x1 crystal frequency 11.97 12 12.03 mhz t cyc x1 cyc le time 83.3 ns t x1l x1 clock low time 0.45t cyc ns t x1h x1 clock high time 0.45t cyc ns t r30pf output pad rise time from 10% to 90% swing with 30pf loading 6 8 12 ns t f30pf output pad fall time from 10% to 90% swing with 30pf loading 5.3 7 10.4 ns t r50pf output pad rise time from 10% to 90% swing with50pf loading 9.5 13 19 ns t f50pf output pad fall time from 10% to 90% swing with 50pf loading 7.7 10 16 ns t rusb d+/d - rise time with 50pf loading 4 20 ns t fusb d+/d - fall time with 50pf loading 4 20 ns
revision 1. 1 jun. 7, 1999 - 36 - GL640USB, gl 64 0usb - a 1 1 2 2 . . package d 1 8 t y p 2 5 t y p a 1 a h a 2 5 0 t y p 1 0 t y p e s y m b o l s m i n n o r m a x . a 1 3 0 1 3 4 1 3 8 a 1 0 . 2 4 - - a 2 1 0 6 1 1 0 1 1 4 d 1 0 2 5 b s c . e 4 0 0 b s c . h 4 3 0 4 4 0 4 5 0 u n i t : m i l 40 - soj
revision 1. 1 jun. 7, 1999 - 37 - GL640USB, gl 64 0usb - a syvbois min max a 1.6 a1 0.05 0.15 a2 1.35 1.45 c1 0.09 0.16 d 9.00bsc d1 7.00bsc e 9.00bsc e1 7.00bsc e 0.5bsc b 0.17 0.27 l 0.45 0.75 l1 1 ref 48 - lqfp
revision 1. 1 jun. 7, 1999 - 38 - GL640USB, gl 64 0usb - a c1 a2 a a1 l l1 0.25 d1 d e1 e e b


▲Up To Search▲   

 
Price & Availability of GL640USB

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X